نکاتی مهم برای طراحان نرم‌افزار
۱۴۰۰/۰۳/۱۱ تاریخ انتشار

طراحی نرم‌افزار چیست؟

طراحی نرم‌افزار فرآیند پیش‌بینی و تعریف راه‌حل‌های نرم‌افزاری به یک یا تعدادی از مشکلات است. یکی از مولفه‌های اصلی طراحی نرم‌افزار، تجزیه و تحلیل است. تجزیه و تحلیل بخشی از فرآیند توسعه نرم‌افزار است که مشخصات مورد استفاده در مهندسی نرم‌افزار را فهرست می‌کند. اگر نرم‌افزار به‌طور کامل خودکار باشد، طراحی نرم‌افزاری ممکن است همانند طراحی یک فلوچارت دنباله‌ای از رویدادهای برنامه‌ریزی شده ساده باشد. علاوه بر این، روش‌های نیمه استاندارد مانند زبان مدل‌سازی یکسان و مفاهیم مدل‌سازی اساسی وجود دارد. در هر صورت، بعضی مستندات این طرح معمولاً محصول طراحی است. تفاوت اصلی بین تجزیه و تحلیل نرم‌افزار و طراحی نرم‌افزار این است که خروجی یک تجزیه و تحلیل نرم‌افزاری از مشکلات کوچک‌تر برای حل مسئله تشکیل شده‌ است. بسته به محیط، طراحی اغلب متفاوت است، چه از طریق چارچوب‌های قابل اعتماد چه با الگوهای طراحی مناسب پیاده‌سازی شده باشد. نمونه‌های طراحی شامل سیستم‌های عملیاتی، صفحات وب، دستگاه‌های تلفن همراه یا حتی پارادایم ابری جدید است. طراحی نرم‌افزار هم یک فرایند و هم یک مدل است. فرایند طراحی یک دنباله ای از مراحل است که طراح را قادر می‌سازد که تمام جنبه‌های ساخت نرم‌افزار را توصیف کند. مهارت خلاقیت، تجربیات گذشته، حس اینکه چه چیزی نرم‌افزار «خوب» را می‌سازد و تعهد کلی به کیفیت، نمونه‌هایی از عوامل موفقیت قطعی برای یک طراحی مناسب است. با این وجود مهم است که توجه داشته باشید که فرایند طراحی همیشه یک روش ساده نیست؛ مدل طراحی را می‌توان با طراحی معماری خانه مقایسه کرد. 

نکاتی که در ارتباط با طراحی باید به آن دقت کرد

در طراحی یک مولفه نرم‌افزاری، ویژگی‌های زیادی وجود دارد که باید به آن‌ها دقت کرد. از مهم‌ترین جنبه‌ها می‌توان به سازگاری (نرم‌افزار قادر به کار با سایر محصولات است که برای قابلیت همکاری با یک محصول دیگر طراحی شده‌اند.)، توسعه‌پذیری (قابلیت‌های جدید می‌تواند به نرم‌افزار بدون تغییرات عمده در معماری پایه اضافه شود.)، ماژولار بودن (نرم‌افزار در نتیجه مستقل از اجزای مستقل است که منجر به بهبود قابلیت نگهداری می‌شود. سپس اجزاء می‌توانند قبل از اینکه یک سیستم نرم‌افزاری مورد نظر یکپارچه شوند، به‌طور انفرادی اجرا و آزمایش شوند که اجازه می‌دهد تا تقسیم کار در یک پروژه توسعه نرم‌افزار رخ دهد.)، تحمل خطا (نرم‌افزار مقاوم است و قادر به بازیابی شکست‌های قسمت‌های جزیی است.)، قابلیت نگهداری (اندازه‌گیری اینکه چگونه رفع اشکالات یا اصلاحات کاربردی می‌تواند انجام شود. قابلیت نگهداری بالا می‌تواند محصول ماجولار و توسعه پذیری باشد.)، قابلیت اطمینان (نرم‌افزار قادر به انجام یک تابع مورد نیاز در شرایط مشخص شده برای یک دوره مشخص از زمان است.) قابلیت استفاده مجدد (توانایی استفاده از برخی یا تمام جنبه‌های نرم‌افزار پیشین در پروژه‌های دیگر با اصلاحات کمی و بدون تغییر.)، نیرومندی (این نرم‌افزار قادر به اجرا تحت فشار است یا تحمل ورودی غیرقابل پیش‌بینی یا نامعتبر است. به عنوان مثال، می‌توان آن را با مقاومت در برابر شرایط کم حافظه طراحی کرد.)، امنیت (این نرم‌افزار قادر به مقاومت در برابر اقدامات خصمانه است.)، قابلیت استفاده (نرم‌افزار رابط کاربر باید برای کاربر و مخاطب هدف مورد استفاده قرار گیرد. مقادیر پیش فرض برای پارامترها باید انتخاب شوند به طوری که برای اکثریت کاربران انتخاب خوبی باشد.)، عملکرد (نرم‌افزار وظایف خود را در یک فریم زمان که برای کاربر قابل قبول است انجام می‌دهد و به حافظه بیشمار نیاز ندارد.)، قابلیت حمل (نرم‌افزار باید در شرایط مختلف و محیط‌های مختلف قابل استفاده باشد.) و گسترش‌پذیری (نرم‌افزار به خوبی به افزایش داده‌ها یا تعداد کاربران کمک می‌کند.) اشاره کرد. 

چرا طراحان نرم‌افزار باید در ارتباط با یک زبان مدل‌سازی مهارت داشته باشند؟‌

زبان مدل‌سازی برای بیان اطلاعات، دانش یا سیستم‌ها در یک ساختار تعریف شده توسط مجموعه‌ای از قوانین ثابت استفاده شود. این قوانین برای تفسیر مولفه‌های موجود در ساختار استفاده می‌شوند. زبان مدل‌سازی می‌تواند گرافیکی یا متنی باشد. از زبان‌های مدل‌سازی گرافیکی که در ارتباط با طراحی نرم‌افزار کاربرد دارند باید به زبان توصیف معماری (ADL) که برای توصیف و نمایندگی معماری نرم‌افزار یک سیستم نرم‌افزاری است، نشانه‌گذاری مدل‌سازی فرایند کسب و کار (BPMN)، EXPRESS و (EXPRESS-G (ISO 10303-1 یک استاندارد همه منظوره بین‌المللی برای مدل‌سازی داده‌ها است، زبان مدل‌سازی سازمانی توسعه یافته (EEML) که برای مدل‌سازی فرایند کسب و کار در لایه‌های زیادی استفاده می‌شود، فلوچارت نمایش شماتیک از الگوریتم یا فرایند محاسبات، مفاهیم اساسی مدل‌سازی (FMC) که زبان مدل‌سازی برای سیستم فشرده نرم‌افزار است، IDEF خانواده‌ایی از زبان‌های مدل‌سازی (IDEF0 برای مدل‌سازی عملکرد، IDEF1X برای مدل‌سازی اطلاعات، و IDEF5 برای مدل‌سازی هستی‌شناسی (علم)) اشاره کرد. 

به این مطلب چند ستاره می‌دهید؟(امتیاز: 3.6 - رای: 3)

ثبت نظر تعداد نظرات: 0 تعداد نظرات: 0
usersvg